'use strict';

class AppBootHook {
  constructor(app) {
    this.app = app;
  }

  async willReady() {
<<<<<<< HEAD
    // 应用启动前自动同步数据库表结构
    try {
      console.log('🔄 开始同步数据库表...');
=======
    // 初始化所有模型的关联关系
    try {
      console.log('初始化模型关联关系...');
      
      // 遍历所有模型，调用 associate 函数
      const models = this.app.model;
      for (const modelName in models) {
        const model = models[modelName];
        if (model && typeof model.associate === 'function') {
          try {
            model.associate();
            console.log(`模型 ${modelName} 关联关系初始化完成`);
          } catch (err) {
            console.error(`模型 ${modelName} 关联关系初始化失败:`, err.message);
          }
        }
      }
      
      console.log('所有模型关联关系初始化完成！');
    } catch (error) {
      console.error('关联关系初始化失败:', error.message);
      console.error(error.stack);
    }
    
    // 应用启动前自动同步数据库表结构
    try {
      console.log('开始同步数据库表...');
>>>>>>> resume
      
      // alter: true 表示自动更新表结构，不删除数据
      await this.app.model.sync({ alter: true });
      
<<<<<<< HEAD
      console.log('✅ 数据库表同步完成！');
    } catch (error) {
      console.error('❌ 数据库同步失败:', error.message);
=======
      console.log('数据库表同步完成！');
    } catch (error) {
      console.error('数据库同步失败:', error.message);
>>>>>>> resume
      console.error(error.stack);
    }
  }
}

module.exports = AppBootHook;

